* Keep the GOT offset in a virtual register for i386 non-darwin platforms. It fixes...
authoryury <yury@3ad0048d-3df7-0310-abae-a5850022a9f2>
Mon, 12 Oct 2015 08:02:56 +0000 (08:02 +0000)
committerGraham Inggs <ginggs@debian.org>
Wed, 8 Feb 2017 09:53:35 +0000 (09:53 +0000)
commit33fb9fa5fae5ff5fcd92b51568dfd1a83fc68f42
treec0f14c0f059399394f188ab3bb969437ef0e4375
parentd6404f386792acb7def8958035cab446ae9f0031
* Keep the GOT offset in a virtual register for i386 non-darwin platforms. It fixes PIC code generation with GOT for i386 with enabled optimizations. Bugs #28667, #28668. Prior the fix I have not been able to compile even RTL with -O2 due to not enough free registers, since EBX is reserved for GOT.

  It can be further optimized to teach register allocator to not spill the GOT register if possible.

git-svn-id: http://svn.freepascal.org/svn/ fpc/trunk@32020 3ad0048d-3df7-0310-abae-a5850022a9f2

Gbp-Pq: Name Keep-the-GOT-offset-in-a-virtual-register-for-i386-n.patch
fpcsrc/compiler/i386/cgcpu.pas
fpcsrc/compiler/i386/cpupi.pas
fpcsrc/compiler/i386/hlcgcpu.pas
fpcsrc/compiler/x86/aasmcpu.pas